草庐IT

C++98 诉 C++11 std::set::insert 规范

全部标签

c++ - 使用 std::filesystem 输出作为 LPCWSTR

我正在制作一个程序,它递归地列出某个目录中的所有文件,并使用WinINet将每个文件分别上传到FTP服务器。我遇到的问题是在FtpPutFile()函数中使用filesystem::path::filename因为需要LPCWSTR。转换它(或以某种方式按原样使用它)的最好和最简单的方法是什么?std::stringpath="C:\\Programs";for(constauto&entry:std::experimental::filesystem::recursive_directory_iterator(path))FtpPutFile(hIConnect,entry.path

c++ - std::map::find(char*) 在 Debug模式下无法在 64 位机器上运行

我面临一个有趣的情况,想与大家分享。当然,如果有人能提供帮助,我将不胜感激!#include"stdafx.h"#include#defineDEF_NAME1"NAME1"#defineDEF_NAME2"NAME2"#defineDEF_NAME3"NAME3"#defineDEF_NAME4"NAME4"structTInfo{constchar*TName;constchar*TArray1[100];constchar*TArray2[100];};typedefstd::mapTInfoMap;typedefstd::pairTInfoPair;staticTInfoMap

c++ - 如何销毁由 std::thread 显式创建的线程?

我希望两个线程最初都在无限循环中运行,但过了一段时间我想杀死第一个线程而不等待它完成,第二个线程应该正常运行。我该如何实现?当我运行下面的代码时,出现调试错误!voidf1(inti){while(1){printf("ExecutngThread%d:%d\n",i,j);Sleep(10);}}intmain(){std::threadt1(f1,1);std::threadt2(f1,2);Sleep(100);t1.~thread();while(1){Sleep(10);}return0;} 最佳答案 程序按照设定的控制流

c++ - 为什么 std::ofstream 添加额外的#13(换行符)字符?

我正在使用一个基本的std::ofstream对象,创建如下:output_stream=std::ofstream(output_file.c_str());这会创建一个文件,其中包含一些信息。让我展示这样一条消息的示例:(Watch窗口摘录)full_Message"Errorwhileprocessingmessage:\r\n\tForecastRequest:"这一切都可以,但是在启动以下命令后,出现了问题:output_stream为了找出问题所在,让我们看一下文件的十六进制转储:(这是文件的十六进制显示,如Notepad++中所示。为清楚起见,我截取了屏幕截图。)如您所见

c++ - 为什么 std::remove for file 总是返回 -1?

我正在尝试删除一个文件(如果存在)。所以首先我测试文件是否存在,如果存在我使用std::remove删除它。.test.json中包含一些json相关的txt。我还有#include包括在内。std::stringfile_to_remove="test.json";std::ifstreamf(file_to_remove.c_str());if(f.good()){intval=std::remove(file_to_remove.c_str());std::cout我原以为retval是0但我得到-1我当前的输出是:Removingfile:test.json:retval:-1

windows - 如何在 Perl 中规范化 Windows 文件路径?

更新:我可以使这个问题更容易解决:我想弄清楚正确的正则表达式是什么,以用两个反斜杠替换任何一次出现的反斜杠。我想把这个:vlc.plugin.path=C:\ProgramFiles\JekyllV0.9.2\\VLC_1.0.0\\plugins进入:vlc.plugin.path=C:\\ProgramFiles\\JekyllV0.9.2\\VLC_1.0.0\\plugins原始问题:我想使用Perl正则表达式更改文件中的以下内容:单个反斜杠到两个反斜杠的所有出现单个正斜杠到两个反斜杠的所有出现我尝试了以下方法:perl"-p-i.orig-e"s#\\#\\\\#g"-e"s

windows - 将 X11 显示转发到 Windows 时出现颜色问题

我有一个应用程序可以逐行绘制数据到X11显示器,其中每条线实际上都由不同颜色的像素组成。我通过使用XCreateImage将数据数组映射到XImage*来实现这一点。然后在处理数据时,我用红色、绿色和蓝色值填充XColor变量,并调用XAllocColor来分配颜色。然后我将像素值分配给数据数组中的相应元素。设置好所有数据后,我使用XPutImage绘制线条。在Linux上运行显示时,一切看起来都很棒,完全符合预期。但是,当我通过ssh将X11显示转发到Windows时,颜色全乱了。有什么想法吗?编辑如果我不使用XCreateImage和XPutImage并使用我想要的前景色创建一个G

windows - 计划任务 : setting a working directory?

我有一个程序,我试图在登录时运行它依赖于它所在的同一目录中的文件。通过从我已经cd到的命令行手动运行程序,一切都按预期运行。但是,如果我安排一个任务来运行该程序,我会从我的程序中收到一个错误,提示找不到它需要的文件。所以我的问题是:1.)计划任务的工作目录是程序的位置吗?2.)如果没有,我如何将工作目录设置为程序的位置?这是我在安排我的任务时使用的代码:SCHTASKS/Create/TN"Test"/TR$MyLocation\Test.exe/sconlogon/RLHighest其中“$MyLocation”是一个powershell变量,我将其设置为引用我的程序目录。

windows - 是否可以使用 Visual Studio 11 模拟器的多个实例来调试多人 Metro 应用程序?

我知道为WindowsPhone应用程序执行此操作的解决方案。但在我看来,这必须以其他方式完成。如果有人在这里有任何见解,我会很高兴.. 最佳答案 不可能。您可以想象使用hyper-v解决方案并在您的机器上运行多个操作系统,然后使用远程调试工具连接到它们? 关于windows-是否可以使用VisualStudio11模拟器的多个实例来调试多人Metro应用程序?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow

windows - 安装boost.log(使用代码块12.11 + gcc 4.7.1的Windows 7)

我试图在代码块12.11上构建并运行boost.log库。我没有boost和boost.log的经验,想学习它,所以,首先我需要安装它。安装Boost首先,我遵循howtoinstallboostusingcodeblocks上的步骤结果在两台不同的计算机上(都有Windows7),我在%mypath%\boost\lib中得到了不同的文件列表(一台电脑只有6个文件,另一台52个)更大的列表是:libboost_chrono-mgw47-mt-1_52.a公司libboost_chrono-mgw47-mt-d-1_52.a公司libboost_date_时间-mgw47-mt-1_5